`timescale 1ns / 1ps
//////////////////////////////////////////////////////////////////////////////////
// Company: 
// Engineer: 
// 
// Create Date: 2022/01/02 00:08:07
// Design Name: 
// Module Name: logict
// Project Name: 
// Target Devices: 
// Tool Versions: 
// Description: 
// 
// Dependencies: 
// 
// Revision:
// Revision 0.01 - File Created
// Additional Comments:
// 
//////////////////////////////////////////////////////////////////////////////////


module logict(
    input[31:0] a,
    input[31:0] b,
    input star,
    input[3:0] conl,
    output[31:0] goltic
    );
    
    reg [32:0] ans;
    
    always @(*) begin
        case(conl)
            4'b0001: ans <= a&b;
            4'b0010: ans <= a|b;
            4'b0011: ans <= a^b;
            4'b0100: ans <= ~(a|b);
            4'b0101: ans <= {a[15:0],{16{0}}}; 
            default: ans <= 32'b0;
        endcase
    end
    
    assign goltic = star? ans:32'b0;
endmodule
